/*
	This file is part of AVRCppLib.

    AVRCppLib is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    AVRCppLib is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with AVRCppLib.  If not, see <http://www.gnu.org/licenses/>.

    Copyright (C) Maxime Lemonnier 2007-2011
 */

#ifndef MockGyro_H_
#define MockGyro_H_

#include "Sensors/Sensor.h"

using Timers::Timestamp64;

class MockGyro: public Sensor<uintmax_t>
{
public:
	MockGyro(TimestampTimer<uintmax_t> * timer = Timestamp64::getInstance(1));
	virtual ~MockGyro();

protected:

	float read(char label);
};

MockGyro::MockGyro(TimestampTimer<uintmax_t> * timer) : Sensor<uintmax_t>(timer)
{
	// TODO Auto-generated constructor stub
	Timers::Timestamp64::getInstance(1); // TODO : weird include bug fix/hack : Sensor.cpp : timer->read() undefined
}

MockGyro::~MockGyro()
{
	// TODO Auto-generated destructor stub
}


float MockGyro::read(char label)
{
	switch(label)
	{
		case 'a' : return 66.0;
		case 'b' : return -66.9;
		case 'c' : return 5.0;
	}

	return 0.0;
}

#endif /* MockGyro_H_ */
